Skip to main content
Glama

MCP Selenium WebDriver

by Nixon-Suarez
  • Linux
  • Apple
Guía de Solución de Problemas - Servidor MCP Selenium WebDriver.md8.65 kB
# Guía de Solución de Problemas - Servidor MCP Selenium WebDriver ## Problemas Comunes y Soluciones ### 1. Error: "user data directory is already in use" **Problema:** Chrome no puede iniciar porque el directorio de datos de usuario está en uso. **Soluciones:** #### Opción A: Usar modo incógnito (Recomendado) ```python # En las opciones del navegador options = { "incognito": True, "headless": False } ``` #### Opción B: Limpiar directorios temporales ```cmd for /d %i in ("%TEMP%\chrome_profile_*") do rmdir /s /q "%i" ``` #### Opción C: Usar undetected-chromedriver ```python # En la configuración de evasión de detección detection_evasion = { "use_undetected_chrome": True } ``` ### 2. Error: "Chrome binary not found" **Problema:** El sistema no puede encontrar el ejecutable de Chrome. **Soluciones:** #### Para Windows: 1. **Descargar e instalar Chrome:** Asegúrate de tener Google Chrome instalado en tu sistema. Puedes descargarlo desde el sitio web oficial: [https://www.google.com/chrome/](https://www.google.com/chrome/) 2. **Verificar la ruta de instalación:** Por defecto, Chrome se instala en: - `C:\Program Files\Google\Chrome\Application\chrome.exe` (64-bit) - `C:\Program Files (x86)\Google\Chrome\Application\chrome.exe` (32-bit) 3. **Asegurarse de que ChromeDriver sea compatible:** `webdriver-manager` debería descargar automáticamente la versión correcta de ChromeDriver. Si tienes problemas, puedes verificar la versión de tu Chrome y descargar manualmente el ChromeDriver compatible desde [https://chromedriver.chromium.org/downloads](https://chromedriver.chromium.org/downloads) y colocarlo en una ubicación accesible por el sistema (por ejemplo, en el PATH o en el mismo directorio que tu script Python). #### Verificar instalación: Para verificar si Chrome está en tu PATH o si puedes acceder a él desde la línea de comandos, abre `cmd` o PowerShell y ejecuta: ```cmd where chrome ``` Esto debería mostrar la ruta al ejecutable de Chrome si está correctamente configurado. ### 3. Error: "Firefox binary not found" **Problema:** El sistema no puede encontrar el ejecutable de Firefox. **Soluciones:** #### Para Windows: 1. **Descargar e instalar Firefox:** Asegúrate de tener Mozilla Firefox instalado en tu sistema. Puedes descargarlo desde el sitio web oficial: [https://www.mozilla.org/firefox/](https://www.mozilla.org/firefox/) 2. **Verificar la ruta de instalación:** Por defecto, Firefox se instala en: - `C:\Program Files\Mozilla Firefox\firefox.exe` (64-bit) - `C:\Program Files (x86)\Mozilla Firefox\firefox.exe` (32-bit) 3. **Asegurarse de que GeckoDriver sea compatible:** `webdriver-manager` debería descargar automáticamente la versión correcta de GeckoDriver. Si tienes problemas, puedes verificar la versión de tu Firefox y descargar manualmente el GeckoDriver compatible desde [https://github.com/mozilla/geckodriver/releases](https://github.com/mozilla/geckodriver/releases) y colocarlo en una ubicación accesible por el sistema (por ejemplo, en el PATH o en el mismo directorio que tu script Python). #### Verificar instalación: Para verificar si Firefox está en tu PATH o si puedes acceder a él desde la línea de comandos, abre `cmd` o PowerShell y ejecuta: ```cmd where firefox ``` Esto debería mostrar la ruta al ejecutable de Firefox si está correctamente configurado. ### 4. Problemas de Permisos **Problema:** El servidor no tiene permisos para ejecutar los navegadores o acceder a ciertos directorios. **Soluciones:** #### Verificar permisos: En Windows, los problemas de permisos suelen estar relacionados con la ejecución de scripts o el acceso a archivos en directorios protegidos (como `Program Files`). 1. **Ejecutar como Administrador:** Intenta ejecutar tu script o la aplicación que inicia el servidor MCP como Administrador. Haz clic derecho en el archivo `.py` o en el acceso directo de tu terminal (CMD/PowerShell) y selecciona "Ejecutar como administrador". 2. **Verificar permisos de carpeta:** Asegúrate de que la cuenta de usuario que ejecuta el script tenga permisos de lectura y escritura en: - El directorio donde se encuentra tu proyecto MCP. - Los directorios de instalación de Chrome y Firefox. - El directorio `temp` de tu usuario (`%TEMP%`). Puedes verificar y modificar los permisos de una carpeta haciendo clic derecho sobre ella, seleccionando "Propiedades", luego la pestaña "Seguridad". #### Agregar argumentos de seguridad: Los argumentos de seguridad para Chrome y Firefox son generalmente los mismos en Windows que en Linux, ya que son argumentos de línea de comandos del navegador, no del sistema operativo. ```python options = { "no_sandbox": True, "disable_dev_shm_usage": True, "disable_gpu": True } ``` ### 5. Problemas de WebDriver **Problema:** Los drivers de Selenium no están actualizados o son incompatibles. **Soluciones:** #### Actualizar webdriver-manager: ```bash pip install --upgrade webdriver-manager ``` #### Forzar descarga de drivers: ```python from webdriver_manager.chrome import ChromeDriverManager from webdriver_manager.firefox import GeckoDriverManager # Esto forzará la descarga de la última versión ChromeDriverManager().install() GeckoDriverManager().install() ``` ### 6. Modo Stealth No Funciona **Problema:** Las configuraciones stealth no evitan la detección. **Soluciones:** #### Usar undetected-chromedriver: ```bash pip install undetected-chromedriver ``` #### Configuración stealth completa: ```python detection_evasion = { "use_undetected_chrome": True, "randomize_user_agent": True, "randomize_viewport": True, "disable_blink_features": True, "exclude_switches": ["enable-automation"], "add_experimental_options": { "useAutomationExtension": False, "excludeSwitches": ["enable-automation"] } } ``` ### 7. Problemas de Red/Proxy **Problema:** El navegador no puede conectarse a través de proxy. **Soluciones:** #### Configuración de proxy: ```python proxy_config = { "http": "http://proxy.example.com:8080", "https": "https://proxy.example.com:8080", "socks": "socks5://proxy.example.com:1080" } ``` #### Verificar conectividad: ```bash curl -x http://proxy.example.com:8080 http://httpbin.org/ip ``` ## Configuraciones Recomendadas ### Para Desarrollo Local ```python options = { "headless": False, "incognito": True, "no_sandbox": True, "disable_dev_shm_usage": True } detection_evasion = { "use_undetected_chrome": False, "randomize_user_agent": True, "randomize_viewport": True } ``` ### Para Producción/Servidor ```python options = { "headless": True, "incognito": True, "no_sandbox": True, "disable_dev_shm_usage": True, "disable_gpu": True } detection_evasion = { "use_undetected_chrome": True, "randomize_user_agent": True, "randomize_viewport": True, "disable_blink_features": True } ``` ### Para Evasión Máxima ```python options = { "headless": False, "incognito": True, "no_sandbox": True, "disable_dev_shm_usage": True, "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" } detection_evasion = { "use_undetected_chrome": True, "randomize_user_agent": True, "randomize_viewport": True, "disable_blink_features": True, "exclude_switches": ["enable-automation", "enable-blink-features"], "add_experimental_options": { "useAutomationExtension": False, "excludeSwitches": ["enable-automation"] } } ``` ## Logs y Depuración ### Habilitar logs detallados: ```python import logging logging.basicConfig(level=logging.DEBUG) ``` ### Verificar estado del servidor: ```cmd python test_server.py ``` ### Monitorear procesos de Chrome: ```cmd tasklist | findstr chrome.exe ``` ### Limpiar procesos colgados: ```cmd taskkill /IM chrome.exe /F taskkill /IM firefox.exe /F ``` ## Contacto y Soporte Si los problemas persisten después de seguir esta guía: 1. Verificar que todas las dependencias están instaladas 2. Revisar los logs del servidor para errores específicos 3. Probar con configuraciones mínimas primero 4. Verificar compatibilidad de versiones entre navegadores y drivers ## Notas Importantes - El error de "user data directory is already in use" es común en entornos de desarrollo - Usar modo incógnito es la solución más efectiva para la mayoría de casos - undetected-chromedriver es la mejor opción para evasión de detección - Siempre limpiar sesiones y directorios temporales entre ejecuciones

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Nixon-Suarez/MCP-Selenium-WebDriver'

If you have feedback or need assistance with the MCP directory API, please join our Discord server